Spell correction is a technique that changes the misspelling of a word or a phrase to the correct one. It can be applied to many scenarios, such as document editing, search query suggestion, bidding keyword correction, etc. In one scenario, this technique serves as an assistant that helps a user to avoid typos. User interaction is usually needed to select an appropriate word from a list of candidates generated by a spell correction algorithm. In this scenario, spell correction precision is not strict. However, in other scenarios, the spell correction is performed automatically on a batch of words; no human interaction is involved. Hence, high precision is needed in order to ensure trustable results. In one example, automatic spell correction is used to correct the bidding keywords submitted by advertisers.
Unfortunately, existing spell correction technology fails to provide high precision for automated spell correction. Moreover, current spell correction solutions usually require training data and a dictionary for each language. When the spell corrector is used with a new language, the model trained from past data and an old dictionary may not be applicable. New training data and dictionaries for each language has to be applied which adds substantial development time and cost of current spell correctors.